/*
A camera class that defines the viewing area
*/
#ifndef _GCAMERA_H_   
	#define _GCAMERA_H_ 

#include <SDL.h> 

#include "Define.h"
#include "GFPS.h"
#include "GEntity.h"

enum 
{
	TARGET_MODE_NORMAL = 0,
	TARGET_MODE_CENTER
};

class GCamera
{    
public:   
	//First, we have a control member object, just like area
	static GCamera CameraControl;

private: 
	//Then we have the coordinates of where the camera is
	float X;  
	float Y;     
	
	float* TargetX;  
	float* TargetY;   

public:    
	int TargetMode;  

public:      
	GCamera();   
	~GCamera();

public:  
	float GetTargetModeX();
	float GetTargetModeY();

	float GetX();   
	float GetY();   

	float GetMapX(); 
	float GetMapY(); 

public:     
	void SetPos(int X, int Y); 
	void SetPosToEnd();
	void SetPosToStart();
	void SetPosToLeft();
	void SetPosToRight();

	void SetTarget(float* X, float* Y);
	void SetTarget();
	void SetTargetX(float* X);
	void SetTargetY(float* Y);
};

#endif